home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-06-22 | 1.4 KB | 73 lines | [TEXT/BROW] |
- // Receiver.h
- // Created by Bill Hubauer on Mon, Jun 19, 1995 @ 8:16 AM.
-
- #ifndef __Receiver__
- #define __Receiver__
-
- #ifndef __SSTYPES__
- #include "SSTypes.h"
- #endif
-
- #ifndef __Semaphore__
- #include "Semaphore.h"
- #endif
-
- class SReceiver
- {
- public:
- SReceiver(SSReadProcPtr readProc,long readProcRefCon,SSCancelReadProcPtr cancelProc,UInt32 bufferSize);
- virtual ~SReceiver();
-
- OSErr Initialize();
-
- void SetSHeader(const SHeader& header) {_header = header;}
-
- OSErr Start();
-
- private:
- void StartRead();
- void StartPlay();
-
- void CancelRead();
- void DoRead();
- void DoPlay();
-
- void PlayBuffer();
- void InitSoundHeader();
-
- static pascal void _CancelCompleteRead(long compData,OSErr ioResult,long ioLength);
- static pascal void _CompleteRead(long completionData,OSErr ioResult,long ioLength);
- void CompleteRead(OSErr ioResult,long ioLength);
-
- static pascal void _SoundCallBack(SndChannelPtr chan, SndCommand *cmd);
-
- long _saveGlobals;
-
- SSReadProcPtr _readProc;
- long _readProcRefCon;
- SSCancelReadProcPtr _cancelProc;
-
- SHeader _header;
-
- char* _readBuffer;
- char* _playBuffer;
- UInt32 _bufferSize;
- UInt32 _bytesInReadBuffer;
- UInt32 _bytesInPlayBuffer;
-
- SndChannelPtr _channel;
- CSemaphore _readFlag;
- CSemaphore _playFlag;
- Boolean _readDoneQ;
- Boolean _readAgainQ;
- Boolean _shuttingDownQ;
-
- StateBlock _stateVars;
- LeftOverBlock _leftOverSamples;
-
-
-
- };
-
- #endif
-